/*
* Gui_NewRun.java
*
* Created on May 1, 2006
* Latest version: July 20, 2006
*
* This class is a part of the Assessment of Comprehension program (BullRunner), created
* for the Language Science Lab at Boston University, under the grant entitled
* "Assessment of Comprehension Skills in Older Struggling Readers." Please
* direct any questions regarding the project to Gloria S. Waters or David N.
* Caplan.
*
* This program was written by Sam Fentress [add any subsequent authors here].
* Questions about the program may be directed to sfentress@gmail.com.
*
* This program is released WITHOUT COPYRIGHT into the PUBLIC DOMAIN. This
* program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* --
* Note: This and all other GUIs in the BullRunner program were created using NetBean's
* Gui editor. The method initComponents() was entirely auto-generated and
* cannot be edited in NetBeans. Appologies, therefore, if the organization of
* the code does not always appear to be logical.
* --
*
* @author Sam Fentress
* @version 0.05
*/
package gui;
import engine.BullRunner;
import engine.Student;
import javax.swing.JOptionPane;
import java.awt.event.KeyEvent;
import java.text.NumberFormat;
import javax.swing.text.NumberFormatter;
/**
* Gui to create new Student object.
*
* @author Sam Fentress
* @version 0.04
*/
public class Gui_NewRun extends javax.swing.JFrame {
BullRunner aoc;
Student student;
NumberFormat integerFormat;
NumberFormatter textFormatter;
/**
* Creates new form Gui_NewRun
*/
public Gui_NewRun(BullRunner aoc) {
this.aoc = aoc;
integerFormat = NumberFormat.getIntegerInstance();
textFormatter = new NumberFormatter(integerFormat);
textFormatter.setAllowsInvalid(false);
// setDefaultLookAndFeelDecorated(true);
initComponents();
setLocationRelativeTo(null);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
JLabelNewStudent = new javax.swing.JLabel();
textLastName = new javax.swing.JTextField();
JLabelLastName = new javax.swing.JLabel();
textFirstName = new javax.swing.JTextField();
JLabelDOB = new javax.swing.JLabel();
jLabelSlash1 = new javax.swing.JLabel();
jLabelSlash2 = new javax.swing.JLabel();
JLabelFistName = new javax.swing.JLabel();
buttonOK = new javax.swing.JButton();
jLabelmmddyy = new javax.swing.JLabel();
textMonth = new javax.swing.JFormattedTextField(textFormatter);
textDay = new javax.swing.JFormattedTextField(textFormatter);
textYear = new javax.swing.JFormattedTextField(textFormatter);
getContentPane().setLayout(new java.awt.GridBagLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Bull Runner: New test");
setName("frameNewStudent");
setResizable(false);
JLabelNewStudent.setFont(new java.awt.Font("Lucida Grande", 1, 20));
JLabelNewStudent.setText("New Test");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(30, 50, 30, 0);
getContentPane().add(JLabelNewStudent, gridBagConstraints);
textLastName.setMinimumSize(new java.awt.Dimension(122, 22));
textLastName.setPreferredSize(new java.awt.Dimension(122, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 7, 0);
getContentPane().add(textLastName, gridBagConstraints);
JLabelLastName.setFont(new java.awt.Font("Lucida Grande", 0, 18));
JLabelLastName.setText("Last Name");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 50, 7, 0);
getContentPane().add(JLabelLastName, gridBagConstraints);
textFirstName.setMinimumSize(new java.awt.Dimension(122, 22));
textFirstName.setPreferredSize(new java.awt.Dimension(122, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 5;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 7, 0);
getContentPane().add(textFirstName, gridBagConstraints);
JLabelDOB.setFont(new java.awt.Font("Lucida Grande", 0, 18));
JLabelDOB.setText("Date of Birth");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 50, 0, 0);
getContentPane().add(JLabelDOB, gridBagConstraints);
jLabelSlash1.setFont(new java.awt.Font("Lucida Grande", 0, 18));
jLabelSlash1.setText("/");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
getContentPane().add(jLabelSlash1, gridBagConstraints);
jLabelSlash2.setFont(new java.awt.Font("Lucida Grande", 0, 18));
jLabelSlash2.setText("/");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 4;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 2, 0, 2);
getContentPane().add(jLabelSlash2, gridBagConstraints);
JLabelFistName.setFont(new java.awt.Font("Lucida Grande", 0, 18));
JLabelFistName.setText("First name");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 50, 7, 0);
getContentPane().add(JLabelFistName, gridBagConstraints);
buttonOK.setText("Ok");
buttonOK.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
buttonOKMouseClicked(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 6;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(12, 6, 30, 50);
getContentPane().add(buttonOK, gridBagConstraints);
jLabelmmddyy.setText("(mm/dd/yy)");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 6;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 6, 0, 50);
getContentPane().add(jLabelmmddyy, gridBagConstraints);
textMonth.setMinimumSize(new java.awt.Dimension(32, 22));
textMonth.setPreferredSize(new java.awt.Dimension(32, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
getContentPane().add(textMonth, gridBagConstraints);
textDay.setMinimumSize(new java.awt.Dimension(32, 22));
textDay.setPreferredSize(new java.awt.Dimension(32, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 3;
getContentPane().add(textDay, gridBagConstraints);
textYear.setMinimumSize(new java.awt.Dimension(32, 22));
textYear.setPreferredSize(new java.awt.Dimension(32, 22));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 5;
gridBagConstraints.gridy = 3;
getContentPane().add(textYear, gridBagConstraints);
pack();
}// </editor-fold>//GEN-END:initComponents
private void buttonOKMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_buttonOKMouseClicked
if (checkFields()){
createStudent();
aoc.runNewTest(student);
}
}//GEN-LAST:event_buttonOKMouseClicked
/**
* Checks all field to see if they've been filled in. Currently does not
* check to see if values are reasonable. This will result in an error
* if letters are found in dob fields
*/
private boolean checkFields() {
boolean allFilledIn = true;
String warning = "Please make sure the following fields are filled in:\n";
if (textFirstName.getText().equals("")){
warning += " First Name";
allFilledIn = false;
}
if (textLastName.getText().equals("")){
if (!allFilledIn)
warning += ",\n";
warning += " Last Name";
allFilledIn = false;
}
if (textMonth.getText().equals("")){
if (!allFilledIn)
warning += ",\n";
warning += " Month of birth";
allFilledIn = false;
}
if (textDay.getText().equals("")){
if (!allFilledIn)
warning += ",\n";
warning += " Day of birth";
allFilledIn = false;
}
if (textYear.getText().equals("")){
if (!allFilledIn)
warning += ",\n";
warning += " Year of birth";
allFilledIn = false;
}
if (!allFilledIn)
JOptionPane.showMessageDialog(this, warning, "Warning", JOptionPane.WARNING_MESSAGE);
return allFilledIn;
}
private void createStudent(){
student = new Student();
student.setName(textFirstName.getText(), textLastName.getText());
student.setDOB(Integer.parseInt(textMonth.getText()),
Integer.parseInt(textDay.getText()),
Integer.parseInt(textYear.getText()));
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel JLabelDOB;
private javax.swing.JLabel JLabelFistName;
private javax.swing.JLabel JLabelLastName;
private javax.swing.JLabel JLabelNewStudent;
private javax.swing.JButton buttonOK;
private javax.swing.JLabel jLabelSlash1;
private javax.swing.JLabel jLabelSlash2;
private javax.swing.JLabel jLabelmmddyy;
private javax.swing.JFormattedTextField textDay;
private javax.swing.JTextField textFirstName;
private javax.swing.JTextField textLastName;
private javax.swing.JFormattedTextField textMonth;
private javax.swing.JFormattedTextField textYear;
// End of variables declaration//GEN-END:variables
}